package com.cet.designpatterns.responsibilitychain;

/**
 * @program: algorithm
 * @description:
 * @author: 陈恩涛
 * @create: 2021-09-29 10:10
 **/
public abstract class Approver {

    /**
     * 下一个处理者
     */
    protected Approver next;

    /**
     * 名字
     */
    protected String name;

    public Approver(String name) {
        this.name = name;
    }

    public void setNext(Approver next) {
        this.next = next;
    }

    /**
     * 处理审批请求的方法，得到一个请求，处理是子类完成，因此该方法做成抽象
     * @param request
     */
    public abstract void processRequest(PurchaseRequest request);
}
